Skip to content

feat(mpm): flash the MPM v2 multi-module - #7994

Draft
raphaelcoeffic wants to merge 2 commits into
mainfrom
mpm-v2-flash
Draft

raphaelcoeffic wants to merge 2 commits into
mainfrom
mpm-v2-flash

Conversation

@raphaelcoeffic

@raphaelcoeffic raphaelcoeffic commented Nov 4, 2026 •

Copy link
Copy Markdown
Member

Lets the radio flash the MPM v2, a MULTI-Module built on a TI CC26xx or CC27xx instead of the 4-in-1's STM32 and RF chips. The MPM v2 already runs on unmodified EdgeTX (protocol list, bind, telemetry). Only flashing it from the radio needs this change.

Draft until the MPM v2 is closer to a release.

What changes

  • Firmware file: MPM v2 files carry board type 3 in their multi-x (v2) signature, now FIRMWARE_MULTI_MPM_V2, which the flash driver receives as the file's board type. They are accepted for the internal and external module under the same conditions as STM32 files (boot loader support, boot loader check, MULTI telemetry).
  • Device check: the MPM v2 boot loader speaks the same STK500 dialect as the STM32 one, with the same 256-byte pages and the same 0x1000 write offset. It reports the device signature 1E 55 26, on the CC26xx and the CC27xx alike: the signature names the boot loader, not the chip. The file type and the module must match, so an MPM v2 file is refused on an STM32 module, and the other way round, before anything is written. The radio leaves programming mode and shows the usual wrong-signature message.
  • Sync timing: for MPM v2 files the sync starts 10 ms after power on instead of 500 ms. The MPM v2 boot loader only listens for a short time after power on, so that the module starts fast after a radio reboot.

STM32 and AVR modules flash exactly as before.

Tested

On 2.12, which has the same code, with "Flash External Multi" and mpm-v2.bin from the SD card:

  • RadioMaster TX15: the application read back over J-Link was identical to the file.
  • RadioMaster GX15: the new version showed up, and the image header CRC checked out.

Not tested yet: an STM32 module with this build (flashing it, and refusing an MPM v2 file).

Test builds for 2.12, with the external module pass-through (#7927) and the USB storage fix (#7934): #7993.

Firmware files with board type 3 in the multi-x signature are MPM v2
(CC2652) images. They are accepted for internal and external modules like
STM32 ones, and the module's STK500 device signature must match the file:
1E 55 26 for the MPM v2 boot loader. A file for the other kind of module
is refused before anything is written.

The MPM v2 boot loader only listens for a short time after power on, so
the module starts fast after a radio reboot: for these files the sync
starts 10 ms after power on instead of 500 ms.
…naming

The driver gets the file's MultiFirmwareBoardType instead of a bool.
FIRMWARE_MULTI_CC2652 is now FIRMWARE_MULTI_MPM_V2: the 1E 55 26
signature names the MPM v2 boot loader, which runs on the CC26xx and
the CC27xx alike.
@raphaelcoeffic raphaelcoeffic changed the title feat(mpm): flash the MPM v2 (CC2652) multi-module feat(mpm): flash the MPM v2 multi-module Nov 4, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant